#include <stdio.h>
#define MAXSIZE 20

typedef struct student
{
    char name[8];
    float score;
} student;
void InsertSort(student *stus, int n)
{
    student temp;
    int i,j;
    for (i = 1; i <= n; i++)
    {
        if (stus[i].score<stus[i-1].score)
        {
            temp = stus[i];
            for (j = i-1; temp.score<stus[j].score; --j)//从后往前查找待插入位置
                stus[j+1] = stus[j];//向后挪位
            stus[j+1] = temp;//复制到插入位置,注意这时j已经指向一个比temp还小的元素，故此时要让j+1的位置复制temp
        }   
    }
}
int main()
{
    student stus[MAXSIZE];
    int p = 0; // 指向当前学生下标
    int s = 1; // 指向学生排名
    while (1)
    {
        student stu;
        scanf("%s %f", stu.name, &stu.score);
        fflush(stdin); // 清除缓冲区
        if (stu.name[0] == '0' && stu.score == 0)
            break;
        stus[p++] = stu;
    }    // 录入学生信息
    p--; // 指向最后一个学生
    InsertSort(stus,p);
    for (int i = p; i >= 0; i--) // 打印学生信息(从大到小)
        printf("%d %s %.2f\n", s++, stus[i].name, stus[i].score);
    s--; // 指向最后一名
    return 0;
}
